import request from '@/utils/request';

/**
 * 查询所有基础标签, 并统计每一种标签拥有的顾客数量
 * <p>
 * 返回的标签已按 ClerkBaseTag.code 分类
 * @param {number} sid 门店id
 * @return {Object}
 */
export function getAllBaseTags(sid) {
  return request({
    url: '/txs/base_tags/all',
    method: 'get',
    params: { sid },
  });
}

/**
 * 查询所有基础标签
 * @return {Object}
 */
export function getAllBaseTagsNoCount() {
  return request({
    url: '/txs/base_tags/all',
    method: 'get',
  });
}

/**
 * 根据选择的标签筛选顾客
 * @param {Object} queryData
 * @return {Object}
 */
export function getClerkFilterByTags(queryData) {
  return request({
    url: 'txs/salon_activity/clerk/filter',
    method: 'post',
    data: queryData,
  });
}

/**
 * 上传活动方案
 * @param {FormData} formOfFile
 * @return {void}
 */
export function uploadActProposal(formOfFile) {
  return request({
    url: '/txs/salon/upload',
    method: 'post',
    data: formOfFile,
  });
}

/**
 * 创建活动(基本信息)
 * @param {JSON} jsonData
 * @return {void}
 */
export function activityCreate(jsonData) {
  return request({
    url: '/txs/salon_activity',
    method: 'post',
    data: jsonData,
  });
}

/**
 * 修改活动(基本信息)
 * @param {JSON} jsonData
 * @return {void}
 */
export function activityUpdate(jsonData) {
  return request({
    url: '/txs/salon_activity',
    method: 'put',
    data: jsonData,
  });
}

/**
 * 删除活动
 * @param {number} id 活动主键ID
 * @return {void}
 */
export function delActivity(id) {
  return request({
    url: '/txs/salon_activity',
    method: 'delete',
    params: { id },
  });
}

/**
 * 查询活动列表
 * @param {number} pageNumber
 * @param {number} pageSize
 * @param {number} sid 门店ID
 * @param {string} kname 活动负责人名字, 模糊搜索
 * @return {void}
 */
export function getActivityPage(pageNumber, pageSize, sid, kname) {
  return request({
    url: '/txs/salon_activity/page',
    method: 'get',
    params: { pageNumber, pageSize, sid, kname },
  });
}

/**
 * 查询指定时间段内的活动数据
 * @param {number} sid 门店ID
 * @param {string} start 查询起始时间 yyyy-MM-dd HH:mm:ss
 * @param {string} end 查询结束时间 yyyy-MM-dd HH:mm:ss
 * @param {string} kname 活动负责人名字, 模糊搜索
 * @param {boolean} loadBirthday 是否查询这期间过生日的顾客(慎用, 只在周日历中使用, 时间段太长时, 查询很慢)
 * @return {void}
 */
export function getActivitySegment(sid, start, end, kname, loadBirthday) {
  return request({
    url: '/txs/salon_activity/seg',
    method: 'get',
    params: { sid, start, end, kname, loadBirthday: loadBirthday === true ? true : null },
  });
}

/**
 * 活动添加顾客列表, 或修改顾客列表
 * @param {JSON} jsonData
 * @return {void}
 */
export function activityAddClerks(jsonData) {
  return request({
    url: '/txs/salon_clerk_activity',
    method: 'post',
    data: jsonData,
  });
}

/**
 * 查询所有参加活动的顾客id
 * @param {number} id 活动id
 * @return {void}
 */
export function activityGetClerks(id) {
  return request({
    url: '/txs/salon_clerk_activity',
    method: 'get',
    params: { id },
  });
}

/**
 * 分页查询所有参加活动的顾客详细信息
 * @param {number} pageNumber
 * @param {number} pageSize
 * @param {number} id 活动id
 * @return {void}
 */
export function activityGetClerksPage(pageNumber, pageSize, id) {
  return request({
    url: '/txs/salon_clerk_activity/clerks/page',
    method: 'get',
    params: { pageNumber, pageSize, id },
  });
}

/**
 * 根据名字查询顾客列表
 * @param {number} sid 门店ID
 * @param {string} name 顾客名字, 做模糊查询
 * @return {void}
 */
export function getClerksLikeName(sid, name) {
  return request({
    url: '/txs/salon_clerk_activity/clerks/like',
    method: 'get',
    params: { sid, name },
  });
}

/**
 * 分页查询符合某个全案的顾客
 *
 * @param {Object} params 分页信息和全案ID
 * @return {Promise}
 */
export function quananGetClerksPage(params) {
  return request({
    url: '/txs/salon_activity/clerk/quanan',
    method: 'get',
    params: params,
  });
}
